#include"shmcomm.hpp"
int main()
{
    //1、创建Key值
    key_t k=ftok(PATH_NAME,PROJ_ID);
    assert(k!=-1);
    printf("key:%d\n",k);

    //2、创建共享内存
    int shmid = shmget(k,SHM_SIZE,IPC_CREAT | IPC_EXCL | 0666);
    if(shmid==-1)
    {
        perror("shmget");
        exit(1);
    }

    //3、关联共享内存
    char*shmaddr=(char*)shmat(shmid,nullptr,0);
    if(shmaddr==nullptr)
    {
        perror("shmat");
        exit(2);
    }

    //4、进程间通信
    for(;;)
    {
       printf("%s\n",shmaddr);
       if(strcmp(shmaddr,"quit")==0)
       {
            break;
       } 
       sleep(1);
    }

    //5、去关联
    int m=shmdt(shmaddr);
    assert(m!=-1);
    (void)m;

    //6、删除共享内存
    int n=shmctl(shmid,IPC_RMID,nullptr);
    assert(n!=-1);
    (void)n;

    return 0;
}